//----------------------------------------------------------------------------------
// CCameraProcess class
// Author: Oscar Serrano
//
// Description: 26-27/11/12
// Proceso propio del videojuego, hereta de la classe abstarcta CProcess.
// Contiene la informacion propia del juego, independiente del motor
// Proves amb diferents objectes i camares, testeig de frustrum
//----------------------------------------------------------------------------------


#pragma once
#ifndef CAMERA_PROCESS_H
#define CAMERA_PROCESS_H

#include "Process/Process.h"

class CRenderManager;
class CFontManager;
class CObject3D;

class CCameraProcess: public CProcess
{
public:
	CCameraProcess							(): CProcess(), m_pCameraObject(NULL), m_pFPSCamera(NULL), 
												m_pThPSCamera(NULL), m_pCameraObject2(NULL), m_bMovingSide(false), 
												m_pTestCamera(NULL), m_bSphereVisible(false), m_pSphereObject(NULL) {}
	~CCameraProcess							();
	void					Init			();
	void					DeInit			();
	void					Update			(float dt);
	void					RenderScene		(CRenderManager* RM);
	void					RenderScene2D	(CRenderManager* RM, CFontManager* FM);
	uint32					RenderDebugInfo	(CRenderManager* RM, CFontManager* FM, float FPS);

private:

	bool					m_bMovingSide;
	bool					m_bSphereVisible;
	CObject3D*				m_pSphereObject;


	CObject3D*				m_pCameraObject;
	CObject3D*				m_pCameraObject2;
	CCamera*				m_pFPSCamera;
	CCamera*				m_pThPSCamera;

	CCamera*				m_pTestCamera;



};

#endif //CAMERA_PROCESS_H

